package com.basic.modules.ykf.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.basic.common.annotation.DictParam;
import com.basic.common.validator.group.AddGroup;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 客户店铺管理
 *
 * @author maoheng
 * @email 15738859597@163.com
 * @date 2024-04-06 18:40:44
 */
@Data
@TableName("ykf_customer_shop")
public class YkfCustomerShopEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 *
	 */
	@TableId
	private Long shopId;
	@TableField(exist = false)
	private List<Long> shopIds;
	/**
	 * 店铺编号
	 */
	@NotBlank(message = "店铺编号不能为空", groups = AddGroup.class)
	private String shopNo;
	/**
	 * 客户ID
	 */
	@NotNull(message = "客户ID不能为空", groups = AddGroup.class)
	private Long customerId;
	/**
	 * 合作状态 1-正在合作 0-停止合作
	 */
	private Integer  cooperateStatus;

	/**
	 * 合作状态 1-正在合作 0-停止合作
	 */
	@TableField(exist = false)
	private Integer  customerCooperateStatus;

	/**
	 * 停止合作日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date stopCooperateDate;
	/**
	 * 商家反馈结束原因
	 */
	private String stopReason;
	/**
	 * 真实原因
	 */
	private String realReason;
	/**
	 * 业务流失信息判定
	 */
	private String judgeReason;

	/**
	 * 客户挽回结果
	 */
	private String recoveryResult;

	/**
	 * 登记日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date registerDate;

	/**
	 * 平台编号 字典platform
	 */
	private String platformNo;
	/**
	 * 平台名称
	 */
	@DictParam(field = "platformNo", targetField = "platformName", dictType = "platform")
	private String platformName;
	/**
	 * 店铺类型编号 字典shopType
	 */
	private String shopTypeNo;
	/**
	 * 店铺类型名称
	 */
	@DictParam(field = "shopTypeNo", targetField = "shopTypeName", dictType = "shopType")
	private String shopTypeName;
	/**
	 * 店铺名称
	 */
	private String shopName;
	/**
	 * 收费模式 0-合并收费 1-单独收费
	 */
	private Integer feeModel;

	/**
	 * 营销类型编号 字典marketType
	 */
	private String marketTypeNo;
	/**
	 * 营销类型名称
	 */
	@DictParam(field = "marketTypeNo", targetField = "marketTypeName", dictType = "marketType")
	private String marketTypeName;
	/**
	 * 拓客渠道编号 字典expandType
	 */
	private String expandTypeNo;
	/**
	 * 拓客渠道名称
	 */
	@DictParam(field = "expandTypeNo", targetField = "expandTypeName", dictType = "expandType")
	private String expandTypeName;
	/**
	 * 店铺链接
	 */
	private String shopLinkUrl;
	/**
	 * 开始日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date startDate;
	/**
	 * 结束日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date endDate;
	/**
	 * 剔除退款 0-否 1-是
	 */
	private Integer excludingRefunds;
	/**
	 * 客服类型编号 字典customType
	 */
	private String customTypeNo;
	/**
	 * 客服类型名称
	 */
	@DictParam(field = "customTypeNo", targetField = "customTypeName", dictType = "customType")
	private String customTypeName;
	/**
	 * 服务班次编号 字典serviceShift
	 */
	private String serviceShiftNo;
	/**
	 * 服务班次名称
	 */
	@DictParam(field = "serviceShiftNo", targetField = "serviceShiftName", dictType = "serviceShift")
	private String serviceShiftName;
	/**
	 * 底薪
	 */
	private BigDecimal baseSalary;

	/**
	 * 提成%
	 */
	private BigDecimal commission;
	/**
	 * 提成金额
	 */
	@TableField(exist = false)
	private BigDecimal commissionSalary;
	/**
	 * 效益合计
	 */
	@TableField(exist = false)
	private BigDecimal sumSalary;

	/**
	 * 咨询人数
	 */
	private BigDecimal consultPeopleNum;
	/**
	 * 转化率%
	 */
	private BigDecimal conversionRate;
	/**
	 * 响应时间(秒)
	 */
	private BigDecimal responseSecond;
	/**
	 * 联系人
	 */
	private String contacts;
	/**
	 * QQ
	 */
	private String qq;
	/**
	 * 微信
	 */
	private String wechat;
	/**
	 * 钉钉
	 */
	private String ding;
	/**
	 * 手机
	 */
	private String phone;
	/**
	 * 客户配合度编号 字典fitRatio
	 */
	private String fitRatioNo;
	/**
	 * 客户配合度名称
	 */
	@DictParam(field = "fitRatioNo", targetField = "fitRatioName", dictType = "fitRatio")
	private String fitRatioName;
	/**
	 * 客服留言
	 */
	private String customerServiceMessage;
	/**
	 * 店铺对接人
	 */
	private String storeLiaison;
	/**
	 * 店铺创建人
	 */
	@DictParam(field = "createUserId", targetField = "createUserName", dictType = "flowerName")
	@TableField(fill = FieldFill.INSERT)
	private String createUserName;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 创建者ID
	 */
	@TableField(fill = FieldFill.INSERT)
	private Long createUserId;
	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/**
	 * 首次服务时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date firstStartDate;
	/**
	 * 客户编号
	 */
	@TableField(exist = false)
	private String customerNo;
	/**
	 * 客户名称
	 */
	@TableField(exist = false)
	private String customerName;
	/**
	 * keyword
	 */
	@TableField(exist = false)
	private String keyword;

	/**
	 * 首次服务时间-起
	 */
	@TableField(exist = false)
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date firstStartDateStart;


	/**
	 * 首次服务时间-止
	 */
	@TableField(exist = false)
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date firstStartDateEnd;

	/**
	 * 对接平台
	 */
	private String dockingPlatform;

	/**
	 * 到期提醒天数 -1(已过期)/3/7/15/30
	 */
	@TableField(exist = false)
	private Integer stopDays;


	/**
	 * 判定员用户ID
	 */
	private Long stopUserId;

	/**
	 * 判定员
	 */
	private String stopUser;

	/**
	 * 判定员部门 字典 department
	 */
	private String stopUserDept;

	/**
	 * 判定员部门名称 字典 department
	 */
	@DictParam(field = "stopUserDept", targetField = "stopUserDeptName", dictType = "department")
	private String stopUserDeptName;

	/**
	 * 店铺子账号
	 */
	@TableField(exist = false)
	private List<YkfCustomerSubAccountEntity> subAccountList;

	/**
	 * 创建人筛选条件
	 */
	@TableField(exist = false)
	private List<Long> createUserIds;

	/**
	 * 旧数据id
	 */
	private String oldId;

	/**
	 * 月份
	 */
	@TableField(exist = false)
	private String month;

	@TableField(exist = false)
	private List<Long> customerIds;

	/**
	 * 店铺分组
	 */
	private String shopGroup;

	/**
	 * 合并收费分组编号
	 */
	private String mergeGroup;

	/**
	 * 店铺权限IDS
	 */
	@TableField(exist = false)
	private List<Long> powerShopIds;

	/**
	 * 客户等级
	 */
	@TableField(exist = false)
	private String customerLvl;

	/**
	 * 合作天数
	 */
	@TableField(exist = false)
	private Integer cooperateDays;

	/**
	 * 工作天数
	 */
	@TableField(exist = false)
	private Integer workDays;

	/**
	 * 日均咨询量
	 */
	@TableField(exist = false)
	private Integer dayReceptionVolume;


	/**
	 * 月效益值预估
	 */
	@TableField(exist = false)
	private BigDecimal monthSalary;


	@TableField(exist = false)
	private String shoptypeRatioNo;

	private String area;

	@TableField(exist = false)
	private boolean oneSelfFlag;

	@TableField(exist = false)
	private String today;
}
